Global headers:
#G CLEAR (OVERRIDED)
#G DISPLAY <displaymode>
#G FILE <filename>
#G NOCLEAR
#G PAUSE
#G RESET SPARKS

Headers:
#C <comment>
#P <x> <y> (<ctype>)
#P CREATE <x> <y> <type>
#P CREATE DEBUG <x> <y> (<type> (<arg1> (<arg2>)))
#P CREATE DELAY <x> <y> (<ticks> (<remaining_ticks>))
#P CREATE DIVIDE <x> <y> (<pulses> (<remaining_pulses>))
#P DELETE <x1> <y1> (<x2> <y2>)
#P RECIPE (<start> (<end>))
#P SIGN <x> <y> <string>
#P SIGN CLEAR (<x1> <y1> (<x2> <y2>))
#P SIGN FLAGS ("="|"+"|"-"|"*"|"^" ("~") <bitmask>)+
#P SPARK <x> <y>
#P STREAM <x> <y> <vx> <vy>
#P TABSIZE <tabsize>
#P TAPE <x> <y> <dx> <dy> <stream>

Particles:
!	<reserved>
"	<reserved>
#	Comment
$	<reserved>
%	ANDNOT gate
&	AND gate
'	<reserved>
(	<reserved>
)	<reserved>
*	Metal
+	P-type silicon
,	<reserved>
-	N-type silicon
.	<reserved>
/	<reserved>
:	<reserved>
;	<reserved>
<	Pipe direction (W)
=	WireWorld wire
>	Pipe direction (E)
?	Random generator
@	Insulator
[	Grouped pipe direction (W)
\	<reserved>
]	Grouped pipe direction (E)
^	Pipe direction (N)
_	<reserved>
`	<reserved>
{	Turn right / Left terminator
|	<reserved>
}	Turn left / Right terminator
~	<reserved>
A	Active powered battery
a	Inactive powered battery
B	<reserved>
b	<reserved>
C	Collector
c	Callback
D	Pulse divider (ON)
d	Pulse divider (OFF)
E	<reserved>
e	Emitter
F	Flipflop (N-type silicon)
f	Flipflop (P-type silicon)
G	<reserved>
g	<reserved>
H	<reserved>
h	<reserved>
I	Instant conductor
i	Insulated wire
J	<reserved>
j	<reserved>
K	<reserved>
k	<reserved>
L	Active laser
l	Inactive laser
M	<reserved>
m	Grouped pipe direction (N)
N	<reserved>
n	<reserved>
O	<reserved>
o	<reserved>
P	Spark stream regulator
p	Left pulse divider
Q	Active inverter
q	Right pulse divider
R	Spark reflector
r	Battery
S	Active switch
s	Inactive switch
T	Active switch (alternate)
t	Inactive switch (alternate)
U	<reserved>
u	<reserved>
V	<reserved>
v	Pipe direction (S)
W	<reserved>
w	Grouped pipe direction (S)
X	<reserved>
x	Void
Y	<reserved>
y	<reserved>
Z	<reserved>
z	<reserved>

Particles for construction:
^	Photon direction (N)
>	Photon direction (E)
v	Photon direction (S)
<	Photon direction (W)
0	Construction arm
1	Construction void
2	Turn left
3	Turn right
4	Diode input
5	Diode output
6	Left splitter
7	Right splitter
8	U-turn
9	Splitter with forward and U-turn
A	Splitter with left and right
B	3-way splitter
C	Pulse divider '0'
D	Pulse divider '1'
E	Optics logic gate (AND)
F	Optics logic gate (ANDNOT)
G	Optics logic gate (OR)
H	Optics logic gate (XOR)
I	Optics logic gate (MUX/DEMUX)
J	Conditional turner

Construction command:
0	FORWARD
1	BACKWARD
2	LEFT
3	RIGHT
4x	WRITE
5	READ
6	LEFT_EMIT
7	RIGHT_EMIT
8	REVERSE_EMIT
9	EMIT
Ax	WRITE_SETTER
B	DESTROY_ARM
C	UNUSED
D	UNUSED
E	READ_STREAM
F	RESERVED
Gx	CHANGE_SETTER
H	UNUSED
I	UNUSED
J	UNUSED

Clone ctypes:
	Water: spout
	Oil: well
	Lava: volcano
	Fire: torch
	Thunder: sparker
	Spark: battery
	Photons: laser

Pipe data structure:
	ctype = stored type
	life = stored life
	tmp = stored ctype
	tmp2 = stored tmp
	
Emitter data structure:
	ctype = stored type
	life = reserved for powered clone
	tmp = stored decoration color
	tmp2 = unused
	fArg = stored velocity

Debug particle (ctype = 0) usage:
	Argument:
		tmp = character code
	Input:
		Silicon = clear screen
		Other conductor = put character

Debug particle (ctype = 1) usage:
	Argument:
		tmp = counter
	Input:
		Metal = clear
		P-type silicon = counter up
		N-type silicon = counter down

Debug particle (ctype = 2) usage:
	Argument:
		tmp = virtual key code
	Input:
		Metal = clock
	Output:
		P-type silicon = pressed
		N-type silicon = not pressed

Energy particle for construction internal:
0	"Read stream" request
1	"Read stream" reply
2	"Fast replication" request
3	"Fast replication" reply